In data archival and/or backup environments, there is often a need to store large data objects such as large files within an archival/backup system. Examples of such large data objects which may be found in many office environments include “.pst” files from Microsoft Outlook™.
In some data archival and/or backup systems, large files are split into a number of equal sized units commonly known as segments. In this way, when data is appended to a file which has already been archived/backed-up, a later archival/backup operation need only create segments corresponding to the new data. This solution is particularly useful for files such as MSOutlook™ .pst files which may have many kilobytes or megabytes appended in a single day if a user receives or sends a number of large messages in that day. By using such a solution, an amount of data for archival or backup can be substantially reduced by avoiding making archival/backup copies of previously archived/backed-up data.
Known techniques for performing such segmented archival/backup operations typically divide the file for archival/backup into a number of segments of a predetermined size starting at the beginning of the file. The final segment may therefore be smaller than the predetermined size if the file's total size is not an exact multiple of the predetermined segment size. Each such segment is then compared to already stored segments of that file to determine whether it has already been archived/backed-up. Only segments which do not correspond exactly to previously stored segments are then archived/backed-up.
The present invention has been made, at least in part, in consideration of drawbacks and limitations of such conventional systems.